package com.itheima.pojo;

/**
 * @author 薛虎
 * @date 2021/1/21 16:22
 */

/**
 * 服务注册:注册中心
 * 此处注册中心我们将服务注册在map集合中,结构伪Map<String,Map<URL,Class>>外边的map的key存储服务接口的全类名，
 * URL封装调用服务的ip和port,里面的value指定具体实现类,注册中心类提供注册服务并暴露服务和发现服务功能.
 */
public class URL {

    private String hostname;

    private Integer port;

    public URL() {
    }

    public URL(String hostname, Integer port) {
        this.hostname = hostname;
        this.port = port;
    }

    public String getHostname() {
        return hostname;
    }

    public void setHostname(String hostname) {
        this.hostname = hostname;
    }

    public Integer getPort() {
        return port;
    }

    public void setPort(Integer port) {
        this.port = port;
    }


    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }

        if (!(obj instanceof URL)) {
            return false;
        }

        URL url = (URL) obj;

        if (hostname.equals(((URL) obj).getHostname())) {
            if (port.intValue() == url.port.intValue()) {
                return true;
            }
        }
        return false;

    }

    @Override
    public int hashCode() {
        int result = hostname != null ? hostname.hashCode() : 0;
        result = 31 * result + (port != null ? port.hashCode() : 0);
        return result;
    }
}
